Skip to content

App Store: libraries and tools, installed once and switched on per user - #145

Closed
vickeykumar wants to merge 1 commit into
masterfrom
feature/app-store
Closed

vickeykumar wants to merge 1 commit into
masterfrom
feature/app-store

Conversation

@vickeykumar

Copy link
Copy Markdown
Owner

Libraries and tools (conda-forge) are installed once into a shared store on each server and switched on per signed-in user. The terminal's Landlock sandbox is given exactly the bundles on the user's list, so an app that is off for a user cannot be read or run.

  • Store: /store/pkgs (cache), /store/apps/<name>-<ver> (a complete conda prefix, made once), /store/envs/<home>/manifest.json + env.sh.
  • Sandbox: landlock-helper --store-dir reads the manifest before it restricts itself; a bad entry stops the terminal. Checked by hand with the real helper on Landlock.
  • Who: signed-in users install the safe list and switch apps; anything else is a request an admin decides; apt packages are admin-only for all users. Failures can be reported to the admin.
  • Replay: the catalog lives in the site database; the gateway applies it at start and every 10 minutes, workers poll /store/sync (worker token) every minute.
  • Page / admin / Genie: Apps dialog, My apps, hints from "No module named", admin App Store view, agent action store_suggest.
  • Design: LLD 18 and the approved canvas (11 boards). Not built: object-store tarballs, Node libraries, languages and plugins. A real micromamba install has not been run here (the Dockerfile now adds it).
  • This branch also carries the snapshot log-line commit of PR 144 until that merges.

Tests: appstore, server, landlock Go tests; widget and page script tests; browser tests (the signed-in screens run against stand-in answers, a browser test cannot sign in). The browser suite on the Mac test container had 7 failures that are Mac/container-only (Cmd symbol, REPLs that need /tmp, load flakes); CI decides.

🤖 Generated with Claude Code

…hed on per signed-in user

Apps are conda-forge bundles in a shared store (/store/apps), made once by the server (micromamba, outside any terminal's sandbox);
each user's list (manifest) says which ones their terminal may read and run, and the Landlock helper allows exactly those folders.
Requests and failure reports go to an admin queue; every node (gateway and workers) replays the catalog at start and by polling.
Page: Apps dialog, My apps, hints from the terminal's own error; Genie action store_suggest; admin App Store view; apt list for all users.
Design: LLD 18 and the canvas 'App Store: all screens and actions'. Not built: object-store tarballs, Node libraries, languages and plugins.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@vickeykumar

Copy link
Copy Markdown
Owner Author

Moved to development: the App Store commit (1188104) is on development and in PR 144. No new branches without asking.

@vickeykumar
vickeykumar deleted the feature/app-store branch November 14, 2026 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant